<?php

namespace App\Http\Controllers\Admin;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;

class ShuffimgController extends Controller
{
    // index
    public function getIndex(Request $request)
    {
        // 查数据库
         $data = DB::table('shuffling_figure')
            -> select('shuffling_figure.*', 'shop.name as shop_name')
            -> join('shop', 'shuffling_figure.shop_id', '=', 'shop.id')
            -> where('shop.name', 'like', '%'.$request -> input('keyword').'%')
            -> paginate($request -> input('num', 10));

        return view('admin.shuffimg.index', ['data' => $data, 'request' => $request -> all()]); 
    }


    // add
    public function getAdd()
    {
        // 查店铺名
        $shop = DB::table('shop') -> select('id', 'name') -> get();  
        return view('admin.shuffimg.add', ['shop' => $shop]);
    }

    // insert
    public function postInsert(Request $request)
    {
        $data = $request -> except('_token');
        
         // 判断文件是否上传
        if ($request->hasFile('img')) {

            // 验证上传文件是否有效
            if ($request->file('img')->isValid()) {

                // 获取文件后缀格式名
                $suffix = $request -> file('img') -> getClientOriginalExtension();

                // 随机一个文件名称
                $fileName = md5(time().mt_rand(100000, 999999)).".".$suffix;

                // 将文件保存到本地
                $request->file('img')->move('./shuffimg', $fileName);

                // 将图片路径放入数组中
                $data['img'] = $fileName;

                
                // 将数据保存到数据库
                $res = DB::table('shuffling_figure') -> insert($data);
                // 判断结果集
                if($res)
                {
                    return redirect('/admin/shuffimg') -> with(['info' => '商品添加成功']);
                }else
                {
                    return back() -> with(['info' => '商品添加失败']);
                }
            }
        }else
        {
            return back() -> with(['info' => '没有添加商品图片!']);
        }

    }

    // edit
    public function getEdit($id, $shop_name)
    {
        // 查询shuffling_figure数据库
        $data = DB::table('shuffling_figure') -> where('id', $id) -> first();
        $data -> shop_name = $shop_name;
        return view('admin.shuffimg.edit', ['data' => $data]);
    }

    // update
    public function postUpdate(Request $request)
    {
        $data = $request -> except('_token', 'oldImg');

         // 判断文件是否上传
        if ($request->hasFile('img')) {

            // 验证上传文件是否有效
            if ($request->file('img')->isValid()) {

                // 删除老图片
                $oldImg = "./shuffimg/".$request -> all()['oldImg'];
                if(file_exists($oldImg))
                {
                    unlink($oldImg);
                }

                // 获取文件后缀格式名
                $suffix = $request -> file('img') -> getClientOriginalExtension();

                // 随机一个文件名称
                $fileName = md5(time().mt_rand(100000, 999999)).".".$suffix;

                // 将文件保存到本地
                $request->file('img')->move('./shuffimg', $fileName);

                // 将图片路径放入数组中
                $data['img'] = $fileName;

                // 将数据保存到数据库
                $res = DB::table('shuffling_figure') -> where('id', $data['id']) -> update($data);
                // 判断结果集
                if($res)
                {
                    return redirect('/admin/shuffimg/index') -> with(['info' => '轮播图修改成功']);
                }else
                {
                    return back() -> with(['info' => '轮播图修改失败']);
                }
            }
        }
    }


    // delete
    public function getDelete($id)
    {
            // 获取图片
            $img = DB::table('shuffling_figure') -> where('id', $id) -> first() -> img; 
            $oldImg = './shuffimg/'.$img;

            // 将数据从数据库中删除
            $res = DB::table('shuffling_figure') -> delete($id);

            // 判断结果集
            if($res)
            {   
                // 从磁盘删除图片

                if(file_exists($oldImg))
                {
                    unlink($oldImg);
                }

                return redirect('/admin/shuffimg/index') -> with(['info' => '轮播图删除成功']);
            }else
            {
                return back() -> with(['info' => '轮播图删除失败']);
            }
    }
}
